/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Base;

import java.util.ArrayList;
import java.util.Collections;

/**
 *
 * @author Rosana
 */
public class Perguntas {
    
    public static ArrayList<Pergunta> lista;
    public static int ultima;
    public static int totalPerguntas;
    public static boolean voltar;
    public static boolean apresentar;
    public static int respostaAluno;
    public static long init;
    public static long fin;
    public static long dif=0;
    public static boolean primeiro=true;
    
    public Perguntas(ArrayList<Pergunta> lista){
        this.lista = lista;
        ultima = 0;
        voltar=false;
    }
    
    public static void calcular(){
        dif += (fin - init)/1000;
        init = 0;
        fin = 0;
    }
    
    public static Pergunta atual(){
        return lista.get(ultima);
    }
    
    public static void ajustarLista(){
        Collections.shuffle(lista); //embaralha a arraylist
        if(lista.size() > totalPerguntas){
            for(int x = totalPerguntas-1; x < lista.size(); x++) { 
                lista.remove(x);
            }
        }
    }
    
    public static Pergunta proxima(){
        if(voltar){
            return voltar();
        }else{
            return seguir();
        }
    }
    
    private static Pergunta seguir(){       
        for(int i=ultima+1; i<lista.size(); i++){
            if(!lista.get(i).isRespondida()){
                ultima = i;
                return lista.get(i);
            }
        }
        for(int i=0; i<=ultima; i++){
            if(!lista.get(i).isRespondida()){
                ultima = i;
                return lista.get(i);
            }
        }
        return null;
    }
    
    private static Pergunta voltar(){        
        for(int i=ultima-1; i>=0; i--){
            if(!lista.get(i).isRespondida()){
                ultima = i;
                return lista.get(i);
            }
        }       
        
        for(int i=lista.size()-1; i>=ultima; i--){
            if(!lista.get(i).isRespondida()){
                ultima = i;
                return lista.get(i);
            }
        }
        return null;
    }
    
    public static void acertou(int a){
        respostaAluno = a;
        boolean resp = false;
        if(lista.get(ultima).getRespostas().get(a).isCorreta()){
            resp = true;
        }
        lista.get(ultima).setAcertou(resp);
        lista.get(ultima).setRespondida(true);        
    }
    
    public static boolean getAcertou(){
        return lista.get(ultima).isAcertou();
    }
    
    public static String correta(){
        String retorno="";
        if(lista.get(ultima).getRespostas().get(0).isCorreta()){
            retorno = "A";
        }else if(lista.get(ultima).getRespostas().get(1).isCorreta()){
            retorno = "B";
        }else if(lista.get(ultima).getRespostas().get(2).isCorreta()){
            retorno= "C";
        }else{
            retorno = "D";
        }
        return retorno;
    }
    
    public static String resposta(){
        return ("<html>"+lista.get(ultima).getComentario()+"</html>");
        
    }
    
    public static String getLink(){
        String retorno="<html>";
        retorno += "<a href=\"" + lista.get(ultima).getLink()+"\">Veja mais clicando aqui!</a></html>";
        return retorno;
    }
    
    public static String link(){
        return lista.get(ultima).getLink();
    }
    
    public static int totalAcertos(){
        int total=0;
        for(int i=0; i<lista.size(); i++){
            if(lista.get(i).isAcertou()){
                total++;
            }
        }
        return total;
    }
    
    public static int totalRepsondidas(){
        int soma = 0;
        for(int j=0; j<lista.size(); j++){
            if(lista.get(j).isRespondida()){
                soma++;
            }
        }
        return soma;
    }
    
    public static String qtde(){
        if(apresentar){
            return (Integer.toString(totalRepsondidas()) +"/"+Integer.toString(lista.size()));
        }
        return (Integer.toString(totalRepsondidas()+1) +"/"+Integer.toString(lista.size()));
    }
    
    public static String qtdeResp(){
        return (Integer.toString(totalRepsondidas()) +"/"+Integer.toString(lista.size()));
    }
    
    public static boolean terminou(){

        if(lista.size() == totalRepsondidas()){
            return true;
        }
        return false;
    }
}
